package com.xbts.system.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotEmpty;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.Data;
import com.xbts.common.annotation.Excel;
import com.xbts.common.utils.StringUtils;
import com.xbts.common.core.domain.BaseEntity;

import java.math.BigDecimal;
import java.util.List;

/**
 * 云市场对象 cn_cloud_market
 *
 * @author xbts
 * @date 2023-08-22
 */
@Data
@ApiModel("云市场对象")
@TableName("cn_cloud_market")
public class CnCloudMarket extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId
    @JsonSerialize(using= ToStringSerializer.class)
    private Long marketId;

    /**
     * 标题
     */
    @Excel(name = "标题")
    @ApiModelProperty("标题")
    @NotEmpty(message = "标题不能为空")
    private String title;

    /**
     * 商品介绍
     */
    @Excel(name = "商品介绍")
    @ApiModelProperty("商品介绍")
    @NotEmpty(message = "商品介绍不能为空")
    private String intro;

    /**
     * 产品说明
     */
    @Excel(name = "产品说明")
    @ApiModelProperty("产品说明")
    @NotEmpty(message = "产品说明不能为空")
    private String description;

    /**
     * 核心功能
     */
    @Excel(name = "核心功能")
    @ApiModelProperty("核心功能")
    private String core;

    /**
     * 优势分析
     */
    @Excel(name = "优势分析")
    @ApiModelProperty("优势分析")
    private String advantage;


    /**
     * 图片
     */
    @Excel(name = "图片")
    @ApiModelProperty("图片")
    private String picture;

    /**
     * 公司名称
     */
    @Excel(name = "公司名称")
    @ApiModelProperty("公司名称")
    private String corporateName;
    /**
     * 公司图片
     */
    @Excel(name = "公司图片")
    @ApiModelProperty("公司图片")
    private String corporateImg;

    /**
     * 服务电话
     */
    @Excel(name = "服务电话")
    @ApiModelProperty("服务电话")
    private String servicePhone;

    /**
     * 服务邮箱
     */
    @Excel(name = "服务邮箱")
    @ApiModelProperty("服务邮箱")
    private String serviceEmail;

    /**
     * 最低价格
     */
    @ApiModelProperty("最低价格")
    private Double lowestPrice;


    /**
     * 云市场通用分类
     */
    @Excel(name = "云市场通用分类")
    @ApiModelProperty("云市场通用分类")
    @NotEmpty(message = "云市场通用分类不能为空")
    @TableField("cloud_market_general_classification")
    private String cloudMarketGeneralClassification;

    /**
     * 云市场行业分类
     */
    @Excel(name = "云市场行业分类")
    @ApiModelProperty("云市场行业分类")
    @NotEmpty(message = "云市场行业分类不能为空")
    @TableField("cloud_market_industry_classification")
    private String cloudMarketIndustryClassification;

    /** 删除标志（0代表存在 1代表删除） */
    private Boolean deleteFlag;

    public <T> QueryWrapper<T> queryWrapper() {
        QueryWrapper<T> queryWrapper = new QueryWrapper<>();
        queryWrapper.like(StringUtils.isNotEmpty(title), "title", title);
        queryWrapper.eq("delete_flag", false);
        queryWrapper.eq(StringUtils.isNotEmpty(cloudMarketGeneralClassification), "cloud_market_general_classification", cloudMarketGeneralClassification);
        queryWrapper.eq(StringUtils.isNotEmpty(cloudMarketIndustryClassification), "cloud_market_industry_classification", cloudMarketIndustryClassification);
        return queryWrapper;
    }
}